File Connections provide a pointer to a local file repository (folder). Any files that are processed are done so in this local repository. Transports are used to send or receive files from this local repository. You configure the File Connection with the appropriate details for locating or creating a file.
By being a separate module from the File Definition it allows you to create a single File Definition and use it against multiple similar files in different locations simply by assigning a different File Connection.
When assigning a File Connection to a File Definition it is considered a design time assignment, when coming to use the File Definition in an Action you have the chance to reassign the File Connection. This allows you to use the same File Definition in multiple Actions each with their own File Connection. This is run time assignment.